// ---------------------------------------------------------------------------------------
// Arquivo validacao.php: Contem as funcoes de validacao dos formularios
// utilizados no
// modulo Fotos.
// Autor: Gabriel Cysne (gcysne@gmail.com)
// Data: 10/01/2008
// ---------------------------------------------------------------------------------------

// ---------------------------------------------------------------------------------------
// Funcao fotos_validaFormAlbum(): Verifica se os campos não estão vazios e se
// o campo de
// data possui uma formatacao correta. Caso tudo esteja ok, retorna true. Caso
// contrario,
// preenche a tabela de erros encontrados e retorna false.
// ---------------------------------------------------------------------------------------

/*******************************************************************************
 * Modificacoes Autor |Data |Descricao 
 * Alexandre |16/04/08 |Arquivo novo
 ******************************************************************************/

// Retira espacos em branco antes e depois das palavras
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/, '');
};

function validaDouble(decimal) {
	padrao = /(^(0?|[1-9][0-9]*)\.(0*[1-9][0-9]*)$)|(^[1-9]+[0-9]*\.0+$)|(^0\.0+$)|(^(0|[1-9][0-9]*)$)/;
	return padrao.test(decimal);
};

function validaInteiro(inteiro) {
	padrao = /^(0|[1-9][0-9]*)$/;
	return padrao.test(inteiro);
};

function validaFormEdtPeca() {
	// validar nome
	d = document.edt_peca;
	if (d.nm_peca.value.trim() == "") {
		alert("O campo (nome da peca) deve ser preenchido!");
		d.nm_peca.focus();
		return false;
	}
	// validar fx_aplicacao
	if (d.fx_aplicacao.value.trim() == "") {
		alert("O campo (faixa de aplicacao) deve ser preenchido!");
		d.fx_aplicacao.focus();
		return false;
	}
	// validar nm_dimensao
	if (d.nm_dimensao.value.trim() == "") {
		alert("O campo (Descricao nominal tipica) deve ser preenchido!");
		d.nm_dimensao.focus();
		return false;
	}
	// validar instrumento associado
	if (d.inst_associado.value.trim() == "") {
		alert("O campo (instrumento associado) deve ser preenchido!");
		d.inst_associado.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.diam_ext.value))) {
		alert("O campo (diametro externo) deve ser preenchido com ponto para separar as casas decimais!");
		d.diam_ext.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaInteiro(d.qt_pecas.value))) {
		alert("Preenchimento incorreto do campo (quantidade pecas)!");
		d.qt_pecas.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.diam_int.value))) {
		alert("O campo (diametro interno) deve ser preenchido com ponto para separar as casas decimais!");
		d.diam_int.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.comprimento.value))) {
		alert("O campo (comprimento) deve ser preenchido com ponto para separar as casas decimais!");
		d.comprimento.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.largura.value))) {
		alert("O campo (largura) deve ser preenchido com ponto para separar as casas decimais!");
		d.largura.focus();
		return false;
	}

	// validar instrumento associado
	if (!(validaDouble(d.profundidade.value))) {
		alert("O campo (profundidade) deve ser preenchido com ponto para separar as casas decimais!");
		d.profundidade.focus();
		return false;
	}

	// validar instrumento associado
	if (d.observacao.value.trim() == "") {
		alert("O campo (observacao) deve ser preenchido!");
		d.observacao.focus();
		return false;
	}

	// validar instrumento associado
	if (d.descricao.value.trim() == "") {
		alert("O campo (descricao da peca) deve ser preenchido!");
		d.descricao.focus();
		return false;
	}

	// valida checkbox rosca
	bltipo_rosca = false;
	tipo_rosca = document.getElementsByName('tipo_rosca[]');
	for (x = 0; x < tipo_rosca.length; x++) {
		if (tipo_rosca[x].checked) {
			bltipo_rosca = true;
			break;
		}
	}

	if (bltipo_rosca == false) {
		alert("Selecione pelo menos um (tipo de rosca) !");
		return false;
	}

	// declara variaveis de conssistencia
	var blinstrumento;
	var bltipo_rosca;

	// valida checkbox instrumento
	blinstrumento = false;
	instrumento = document.getElementsByName('instrumento[]');
	for (x = 0; x < instrumento.length; x++) {
		if (instrumento[x].checked) {
			blinstrumento = true;
			break;
		}
	}

	if (blinstrumento == false) {
		alert("Selecione pelo menos um (tipo de instrumento) !");
		return false;
	}

	// validar email(verificao de endereco eletronico)
	parte1 = d.email.value.indexOf("@");
	parte2 = d.email.value.indexOf(".");
	parte3 = d.email.value.length;
	if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
		alert("O campo " + d.email.name
				+ " deve ser conter um endereco eletronico!");
		d.email.focus();
		return false;
	}
	// validar telefone
	if (d.telefone.value.trim() == "") {
		alert("O campo " + d.telefone.name + " deve ser preenchido!");
		d.telefone.focus();
		return false;
	}
	// validar telefone(verificacao se contem apenas numeros)
	if (isNaN(d.telefone.value)) {
		alert("O campo " + d.telefone.name + " deve conter apenas numeros!");
		d.telefone.focus();
		return false;
	}
	// validar data de nascimento
	erro = 0;
	hoje = new Date();
	anoAtual = hoje.getFullYear();
	barras = d.nasce.value.split("/");
	if (barras.length == 3) {
		dia = barras[0];
		mes = barras[1];
		ano = barras[2];
		resultado = (!isNaN(dia) && (dia > 0) && (dia < 32))
				&& (!isNaN(mes) && (mes > 0) && (mes < 13))
				&& (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
		if (!resultado) {
			alert("Formato de data invalido!");
			d.nasce.focus();
			return false;
		}
	} else {
		alert("Formato de data invalido!");
		d.nasce.focus();
		return false;
	}
	// validar sexo
	if (!d.sexo[0].checked && !d.sexo[1].checked) {
		alert("Escolha o sexo!")
		return false;
	}
	return true;
}

function validaFormCadPeca() {
	// validar nome
	d = document.cad_peca;
	if (d.nm_peca.value.trim() == "") {
		alert("O campo (nome da peca) deve ser preenchido!");
		d.nm_peca.focus();
		return false;
	}
	// validar fx_aplicacao
	if (d.fx_aplicacao.value.trim() == "") {
		alert("O campo (faixa de aplicacao) deve ser preenchido!");
		d.fx_aplicacao.focus();
		return false;
	}
	// validar nm_dimensao
	if (d.nm_dimensao.value.trim() == "") {
		alert("O campo (Descricao nominal tipica) deve ser preenchido!");
		d.nm_dimensao.focus();
		return false;
	}

	// validar instrumento associado
	if (!(validaDouble(d.diam_ext.value))) {
		alert("O campo (diametro externo) deve ser preenchido com ponto para separar as casas decimais!");
		d.diam_ext.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaInteiro(d.qt_pecas.value))) {
		alert("Preenchimento incorreto do campo (quantidade pecas)!");
		d.qt_pecas.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.diam_int.value))) {
		alert("O campo (diametro interno) deve ser preenchido com ponto para separar as casas decimais!");
		d.diam_int.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.comprimento.value))) {
		alert("O campo (comprimento) deve ser preenchido com ponto para separar as casas decimais!");
		d.comprimento.focus();
		return false;
	}
	// validar instrumento associado
	if (!(validaDouble(d.largura.value))) {
		alert("O campo (largura) deve ser preenchido com ponto para separar as casas decimais!");
		d.largura.focus();
		return false;
	}

	// validar instrumento associado
	if (!(validaDouble(d.profundidade.value))) {
		alert("O campo (profundidade) deve ser preenchido com ponto para separar as casas decimais!");
		d.profundidade.focus();
		return false;
	}

	// valida checkbox rosca
	bltipo_rosca = false;
	tipo_rosca = document.getElementsByName('tipo_rosca[]');
	for (x = 0; x < tipo_rosca.length; x++) {
		if (tipo_rosca[x].checked) {
			bltipo_rosca = true;
			break;
		}
	}

	if (bltipo_rosca == false) {
		alert("Selecione pelo menos um (tipo de rosca) !");
		return false;
	}

	// valida checkbox instrumento
	blinstrumento = false;
	instrumento = document.getElementsByName('instrumento[]');
	for (x = 0; x < instrumento.length; x++) {
		if (instrumento[x].checked) {
			blinstrumento = true;
			break;
		}
	}

	if (blinstrumento == false) {
		alert("Selecione pelo menos um (tipo de instrumento) !");
		return false;
	}

	// validar instrumento associado
	if (d.observacao.value.trim() == "") {
		alert("O campo (observacao) deve ser preenchido!");
		d.observacao.focus();
		return false;
	}

	// validar instrumento associado
	if (d.descricao.value.trim() == "") {
		alert("O campo (descricao da peca) deve ser preenchido!");
		d.descricao.focus();
		return false;
	}

	// validar sexo
	if (!d.tipo_rosca[0].checked && !d.sexo[1].checked) {
		alert("Escolha o sexo!")
		return false;
	}

	// validar email(verificao de endereco eletronico)
	parte1 = d.email.value.indexOf("@");
	parte2 = d.email.value.indexOf(".");
	parte3 = d.email.value.length;
	if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
		alert("O campo " + d.email.name
				+ " deve ser conter um endereco eletronico!");
		d.email.focus();
		return false;
	}
	// validar telefone
	if (d.telefone.value.trim() == "") {
		alert("O campo " + d.telefone.name + " deve ser preenchido!");
		d.telefone.focus();
		return false;
	}
	// validar telefone(verificacao se contem apenas numeros)
	if (isNaN(d.telefone.value)) {
		alert("O campo " + d.telefone.name + " deve conter apenas numeros!");
		d.telefone.focus();
		return false;
	}
	// validar data de nascimento
	erro = 0;
	hoje = new Date();
	anoAtual = hoje.getFullYear();
	barras = d.nasce.value.split("/");
	if (barras.length == 3) {
		dia = barras[0];
		mes = barras[1];
		ano = barras[2];
		resultado = (!isNaN(dia) && (dia > 0) && (dia < 32))
				&& (!isNaN(mes) && (mes > 0) && (mes < 13))
				&& (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
		if (!resultado) {
			alert("Formato de data invalido!");
			d.nasce.focus();
			return false;
		}
	} else {
		alert("Formato de data invalido!");
		d.nasce.focus();
		return false;
	}
	// validar sexo
	if (!d.sexo[0].checked && !d.sexo[1].checked) {
		alert("Escolha o sexo!")
		return false;
	}
	return true;
}